1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with methods, systems, and computer program products for improving and authoring of dynamic data content for Web documents (such as Web pages) by applying a content management paradigm to the representation, storage, and retrieval of the content.
2. Description of the Related Art
The World Wide Web (hereinafter, “Web”) was originally used primarily as a distributed file system in which users retrieved documents (also referred to as “Web pages”) having static, predetermined content from remote Web servers and viewed those retrieved documents. Typically, the client device used software such as a Web browser for retrieval and viewing of the documents. In some cases, the user was allowed to update the content of the remotely-stored document, or add content to it. The Hypertext Transfer Protocol, or “HTTP”, was (and continues to be) used for exchanging messages of this type between the user's client device and the remote server.
In recent years, the Web has evolved from this distributed file system model into a Web-centered application environment in which the user's browser now functions as the user's interface or portal to applications running within remote Web servers. This new model facilitates dynamic generation of content for Web documents. Including dynamic data content is a key part of Web authoring in today's Web environment. Dynamically-generated content ranges from very simple processing, such as supplying a current date or time in the content of an otherwise static Web page, to content generation that may use processing which is quite complex. As an example of more complex dynamic content generation, information to be included in a Web document may be extracted from a back-end data store by issuing complex queries against a database; by invoking a legacy host application; etc. The Host Publisher software product available from the International Business Machines Corporation (“IBM”) is an example of software that may be invoked in response to receiving a user request for Web content, where the generation of that content requires invoking a legacy host application or accessing a relational database.
Currently, there are two ways of generating dynamic data in Web documents. One is to let a program such as a Java™ servlet generate the Web document (including the dynamic content as well as markup language tags). The other is to embed some program code in the Web document for dynamic data generation of content to be included within that document, which is the JavaServer Pages™ approach. A Java servlet is a program written in the Java object-oriented programming language. A servlet is created in a way that allows it to be easily added to the code already running on a server, and is intended to extend the functionality provided by the server. A servlet typically implements code to perform a specific task, such as retrieving information from a particular type of database, performing some business application function, or performing a particular type of transcoding operation. “JavaServer Page”, or “JSP”, refers to a document encoded in a server-side scripting language. JSPs may be used to create dynamic content using JavaBeans™ and in-line Java scripting in a Web document. The JavaBean(s) referenced by a document may either be passive containers for data (i.e. they do not contain executable code, but instead are populated by other executing code such as a servlet), or they may be active containers which include executable code. What is required when using a JSP is to invoke a Web document (such as a Hypertext Markup Language, or “HTML” page or an Extensible Markup Language, or “XML”, document) that contains JSP code embedded within it. The referenced JavaBean or scripting code will then be invoked automatically, by the JSP processing engine, as the Web document is being processed. (As is known in the art, invocation of a Web document is typically done by transmitting an HTTP request message from a client to a Web server, where this request specifies the Uniform Resource Locator, or “URL”, used to locate the desired document.) (“Java”, “JavaServer Pages”, and “JavaBeans” are trademarks of Sun Microsystems, Inc.)
Complicating today's Web-centered application environment is an industry shift away from the perspective of managing and authoring a Web site as if it was a collection of Web documents containing information, and toward the perspective of a site being a managed collection of information which may be presented in various views as authored documents. This shift introduces the notion of a content management system which owns both the collection of information and the authored documents which provide a window onto that information. With this new approach, one can easily assure that the site visitor will see a consistent set of information, regardless of which authored document the information is presented in: gone are the days when a price change, catalog description, licensing agreement, privacy policy, the Webmaster's e-mail address, or other content gets changed on only a subset of the site's pages—causing a nasty customer relations problem at best, or the loss of some significant money at worst on some eCommerce sites.
This new approach means, however, that the traditional authoring environment, where back-end scripting logic is invoked to create the dynamic content for a document, can no longer be used for dynamic data generation. In addition to JSPs executing on a Java-based Web server, as previously described, this traditional authoring environment is exemplified by Active Server Page (“ASP”) processors of an Internet Information Server (“IIS”) Web server and Common Gateway Interface (“CGI”) scripts. JavaServer Pages, Active Server Pages, and CGI scripts were developed to provide high-level abstractions for writing logic to generate dynamic content for Web documents. These may be referred to as “scripting components”, and enable content authors to describe how input requests are mapped to back-end application logic, and how the results of that logic are represented in an output response. ASPs are used on Microsoft Web servers to create ActiveX Controls, invoke their methods, and access their properties to generate dynamic content. CGI scripts are a technique which preceded JSPs and ASPs, and provide a simple interface for requesting a Web server to invoke an application program, where that application program typically then generates content dynamically and returns the content to the Web server for delivery to a client.
The drawbacks of the current dynamic content generation techniques include:                Web document presentation is mixed with data generation.        These techniques typically require both the Web document author and the application programmer to work together for creating a particular document, rather than focusing solely on their area of expertise.        Changing the appearance of the Web document sometimes requires modifying and recompiling the Web application.        It is very difficult to make the dynamic data content created using these existing techniques a reusable Web component.        As the authoring environment of a site shifts from a page-managed or document-managed view of information to a content-managed view, the additional indirection (e.g. no longer generating content to fit into a specific place on a specific Web page) breaks many traditional methods of dynamic composition.        
Accordingly, what is needed is an improved technique for dealing with dynamic data content which avoids the drawbacks of prior art approaches.